/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package moodlerest;

import java.io.UnsupportedEncodingException;
import java.util.logging.Level;
import java.util.logging.Logger;

/**
 *
 * @author Lauro
 */
public class Main {

    static String wstoken = "f3431636fb7fcf649cd58973228b6d18";
    static String testMoodle = "http://moodle2-desenv.ciar.ufg.br/webservice/rest/server.php";

    /**
     * @param args the command line arguments
     */
    public static void main(String[] args) {
        MoodleRestWebService.init(testMoodle, wstoken);
        //criarUmUsuario();
        criarVariosUsuarios();
        //deletarUsuarios();
        //getUsers();
    }

    private static void criarUmUsuario() {
        try {

            MoodleUser usuario = new MoodleUser();
            usuario.setFirstname("Chico");
            usuario.setLastname("Buarque");
            usuario.setUsername("11111111111");
            usuario.setPassword("123");
            usuario.setEmail("chiquinho@ciar.ufg.br");
            usuario.setCity("Goiânia");
            usuario.setCountry("BR");
            MoodleUser user = MoodleRestUser.createUser(usuario);
            System.out.println(user.getId() + " - " + user.getFirstname());
        } catch (UsuarioExistenteMoodleException ex) {
            System.out.println(ex.getMessage());
        } catch (UnsupportedEncodingException ex) {
            Logger.getLogger(Main.class.getName()).log(Level.SEVERE, null, ex);
        } catch (MoodleRestUserException ex) {
            Logger.getLogger(Main.class.getName()).log(Level.SEVERE, null, ex);
        }
    }

    private static void criarVariosUsuarios() {
        try {

            MoodleUser usuario1 = new MoodleUser();
            usuario1.setFirstname("Teste");
            usuario1.setLastname("1");
            usuario1.setUsername("111111111111");
            usuario1.setPassword("123");
            usuario1.setEmail("teste1@ciar.ufg.br");
            usuario1.setCity("Goiânia");
            usuario1.setCountry("BR");

            MoodleUser usuario2 = new MoodleUser();
            usuario2.setFirstname("Teste");
            usuario2.setLastname("2");
            usuario2.setUsername("22222222222");
            usuario2.setPassword("123");
            usuario2.setEmail("teste2@ciar.ufg.br");
            usuario2.setCity("Goiânia");
            usuario2.setCountry("BR");

            MoodleUser usuario3 = new MoodleUser();
            usuario3.setFirstname("Teste");
            usuario3.setLastname("3");
            usuario3.setUsername("33333333333");
            usuario3.setPassword("123");
            usuario3.setEmail("teste3@ciar.ufg.br");
            usuario3.setCity("Goiânia");
            usuario3.setCountry("BR");

            MoodleUser usuario4 = new MoodleUser();
            usuario4.setFirstname("Teste");
            usuario4.setLastname("4");
            usuario4.setUsername("44444444444");
            usuario4.setPassword("123");
            usuario4.setEmail("teste4@ciar.ufg.br");
            usuario4.setCity("Goiânia");
            usuario4.setCountry("BR");

            MoodleUser[] users = MoodleRestUser.createUsers(new MoodleUser[]{usuario1, usuario2, usuario3, usuario4});
            for (MoodleUser user : users) {
                System.out.println("Usuário cadastrado: " + user.getFirstname() + " " + user.getLastname() + " - " + user.getId());
            }
        } catch (UsuarioExistenteMoodleException ex) {
            ex.getUsername();
            System.out.println(ex.getMessage());
        } catch (UnsupportedEncodingException ex) {
            Logger.getLogger(Main.class.getName()).log(Level.SEVERE, null, ex);
        } catch (MoodleRestUserException ex) {
            Logger.getLogger(Main.class.getName()).log(Level.SEVERE, null, ex);
        }
    }

    private static void deletarUsuarios() {
        try {

            MoodleRestUser.deleteUsers(new long[]{34, 35, 36, 37});
        } catch (MoodleRestUserException ex) {
            Logger.getLogger(Main.class.getName()).log(Level.SEVERE, null, ex);
        } catch (UnsupportedEncodingException ex) {
            Logger.getLogger(Main.class.getName()).log(Level.SEVERE, null, ex);
        } catch (UsuarioExistenteMoodleException ex) {
            Logger.getLogger(Main.class.getName()).log(Level.SEVERE, null, ex);
        }
    }

    private static void getUsers() {
        try {

            MoodleUser[] usuarios = MoodleRestUser.getUsersById(new long[]{3});
            if (usuarios.length > 0) {
                for (MoodleUser usuario : usuarios) {
                    System.out.println(usuario.getFirstname() + " " + usuario.getLastname());
                }
            } else {
                System.out.println("Usuários não encontrados!");
            }
        } catch (MoodleRestUserException ex) {
            Logger.getLogger(Main.class.getName()).log(Level.SEVERE, null, ex);
        } catch (UnsupportedEncodingException ex) {
            Logger.getLogger(Main.class.getName()).log(Level.SEVERE, null, ex);
        } catch (UsuarioExistenteMoodleException ex) {
            Logger.getLogger(Main.class.getName()).log(Level.SEVERE, null, ex);
        }
    }
}